{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "125a2bf9-3bf0-477a-bdf7-b7b3ecfc7c44",
   "metadata": {},
   "source": [
    "Chapter 11\n",
    "# 无向图\n",
    "Book_6《数据有道》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "97b4738d-daa8-4317-a7fa-39518f6dbefc",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "36ce82b1-27a8-4f68-8298-7faabfe0884a",
   "metadata": {},
   "outputs": [],
   "source": [
    "undirected_G = nx.Graph()\n",
    "# 创建无向图的实例"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8dce2b53-930e-4679-9278-180b12bc14de",
   "metadata": {},
   "source": [
    "## 顶点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "af0fc1b8-7c02-41d4-8d1c-715dd5ac0ed2",
   "metadata": {},
   "outputs": [],
   "source": [
    "undirected_G.add_node('a')\n",
    "# 添加单一顶点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "99702fbc-f9a0-414c-993c-7f25c691845a",
   "metadata": {},
   "outputs": [],
   "source": [
    "undirected_G.add_nodes_from(['b', 'c', 'd'])\n",
    "# 添加多个顶点"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29d9bdf8-ba93-443d-84ff-fda49582fb02",
   "metadata": {},
   "source": [
    "## 边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9bc5c390-94c0-4e30-bb2e-d3e7b35768fe",
   "metadata": {},
   "outputs": [],
   "source": [
    "undirected_G.add_edge('a', 'b')\n",
    "# 添加一条边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6a59ad46-4b36-4670-977d-523936cfbccc",
   "metadata": {},
   "outputs": [],
   "source": [
    "undirected_G.add_edges_from([('b','c'),\n",
    "                             ('b','d'), \n",
    "                             ('c','d'),\n",
    "                             ('c','a')])\n",
    "# 增加一组边"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75dbc9a3-a289-4730-b37d-8c4a05d9d350",
   "metadata": {},
   "source": [
    "## 可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e8510178-17d4-4505-a644-d79fe153d53b",
   "metadata": {},
   "outputs": [],
   "source": [
    "random_pos = nx.random_layout(undirected_G, seed=188)\n",
    "# 设定随机种子，保证每次绘图结果一致\n",
    "\n",
    "pos = nx.spring_layout(undirected_G, pos=random_pos)\n",
    "# 使用弹簧布局算法来排列图中的节点\n",
    "# 使得节点之间的连接看起来更均匀自然"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "323f3f65-ff2f-4149-b0d7-ad70118854d0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAHiCAYAAAA597/kAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABX5UlEQVR4nO3de0BUZeI+8GcGEJGLYih4QfCCoWmCNxB1pQzNSlPTJJTwBpSVttW67VbWrruWXWx3M39zhosgKmp4zcy8pnOOKAomWmDeuKqEIigKIzDz+6P0W3nJC/CemXk+f63McOYZlubhPe8576sxm81mEBERkVBa0QGIiIiIhUxERKQKLGQiIiIVYCETERGpAAuZiIhIBVjIREREKsBCJiIiUgEWMhERkQrY38mTTCYTTp8+DVdXV2g0mobOREREZDXMZjMuXbqEtm3bQqu99Tj4jgr59OnT8Pb2rrdwREREtqawsBDt27e/5eN3VMiurq7XD+bm5lY/yYiIiGzAxYsX4e3tfb1Lb+WOCvnaaWo3NzcWMhER0T34oylfXtRFRESkAixkIiIiFWAhExERqQALmYiISAVYyERERCrAQiYiIlIBFjIREZEKsJCJiIhUgIVMRESkAixkIiIiFWAhExERqQALmYiISAVYyERERCrAQiYiIlIBFjIREZEKsJCJiIhUgIVMRESkAixkIiIiFWAhExERqQALmYiISAVYyERERCrAQiYiIlIBFjIREZEKsJCJiIhUgIVMRESkAixkIiIiFWAhExERqYC96ABERET3oupqHbbnluBMRTUqjbVwcbRHm+ZNMdTfE05N7ETHu2ssZCIisignSyuxbF8BVuwvwOWrddBqAK1GA5PZDJMZcHG0x4S+3pgY1AGdWrmIjnvHNGaz2fxHT7p48SKaN2+OiooKuLm5NUYuIiKi3zCZzPh461Es+vYE7LQa1JluXV92Gg3qzGbMCO2MN8IehFaracSkv3WnHco5ZCIiUj2TyYw30g5h0bcnAOC2ZQwAdb+MNRd9ewJvpB2C6Q+erwYsZCIiUr2Ptx7FmoPF9/S9aw4W4+OtR+s5Uf3jHDIREanaydLK6yPja2orfkLF3jRU5x9C3cVSaOwd0dTnYbg/MhX2LTxvOMaib09gfB9vdPRwbqzYd40jZCIiUrVl+wpgp/ntHLDxzI8wFufAuduf4P5YDFwCR6A6/xDOLv8bTDXVNxzDTqPBsn35jRX5nnCETEREqlV1tQ4r9hdcnxO+xqlzPzj7D/rN15p16Y+zKW/gytE9cOnx6G8eqzObsWJ/IV4Pe1C1t0RxhExERKq1PbcEl6/W3fB1rYPj9f9trqtFXdVF2Lu3gdbRGVfPnrjh+QBQaazF9tySBst6vzhCJiIi1TpTUQ2tBvj9RdKmGiMupn+BysPbUHfpPID/e4LJePmmx9JqgLMVN57OVgsWMhERqValsfb6oh+/dmGrhMrD2+DadxQc2/lD6+gMaDQ4t/5D4BbLa2g1Glwy1jZG7HvCQiYiItVycbS/oYwB4PJRBc49HkXLodOvf81cexWm6spbHstkNsPVUb21xzlkIiJSrQectDecrgYAjebG+rqY+SVgNt3yWCYz4NW8aX3Gq1fq/VOBiIhsVk5ODiRJQvKyVLhGLoTWsdlvHnfq0g+Xj+yA1rEZHDw6wFici+q876B1uvXSlC6O9hjqf+M9ymrBQiYiIlUwGo1Ys2YNdDoddu/eDQ8PD8RMnYranu2w7ofy39z61PKxGECjxeXvv4W5rgaO7brBM/xfKFk556bHttNoEN7PW7W3PAEsZCIiEuz48ePQ6/VYvHgxzp07hyFDhiA1NRVjxoyBo6MjTpZWYvX3u37zPdqmLvB48tUbjtV+RuJNX6PObMbEIJ+GiF9vWMhERNToampqsH79ekiShG3btsHd3R1RUVGIiYlBt27dfvPcTq1cMCO08w3LZ96NGaGdVb1sJsBCJiKiRpSXl4e4uDgkJCSgpKQEISEhSE5Oxvjx4+Hk5HTL73sj7EGcrai+pw0mxga2wxthD95P7EbBQiYiogZVW1uLTZs2QafTYfPmzXB1dUVkZCRiY2PRs2fPOzqGVqvBx+N6wat505/3Q9YAdbfZUfHafsgvhXbG64L3Q75TLGQiImoQRUVFSEhIQFxcHIqLi9G3b1/ExcUhPDwczs53f/pYq9Vg9nB/jO/jjX+v3IUtJy5D69gMWg2uLx5iMv98NXV4P29MDPJR/WnqX2MhExFRvamrq8OWLVsgSRK+/PJLODk5ISIiArGxsejTp0+9vEZHD2d4ndkD44pkxH+9DyUXq3HJWAtXR3t4NW+Kof6eqr6a+lZYyEREdN/Onj2LxMRE6PV65Ofno1evXli4cCEmTpwIN7db3xt8r2RZxqAB/TGyV9t6P7YoLGQiIronJpMJO3fuhE6nw7p162Bvb4/w8HDExsYiKCgIGk3DzNsajUbs27cP8+bNa5Dji8JCJiKiu1JaWoqkpCTo9XocP34c3bp1wyeffILIyEi4u7s3+OtnZWWhuroagwcPbvDXakwsZCIi+kNmsxkGgwE6nQ6rV68GAIwbNw6JiYkYNGhQg42Gb0aWZTg7OyMgIKDRXrMxsJCJiOiWLly4gCVLlkCSJOTk5MDPzw/z5s1DVFQUPDw8hGSSZRnBwcGwt7euCrOud0NERPfNbDZj7969kCQJK1euRG1tLcaMGYOFCxciNDQUWq24jQJNJhNkWcYrr7wiLENDYSETEREA4OLFi1i6dCkkSUJ2djZ8fX0xZ84cTJkyBV5eXqLjAQByc3NRVlaGQYMGiY5S71jIREQ2LjMzEzqdDqmpqaiursbIkSMxf/58DBs2TOho+GZkWYadnR2Cg4NFR6l3LGQiIhtUWVmJFStWQKfTITMzE+3bt8fs2bMxbdo0tGvXTnS8W5JlGYGBgXBxcREdpd6xkImIbEh2djYkSUJKSgoqKysxYsQIbNiwASNGjLCIi6QMBgNGjx4tOkaDUP9Pn4iI7ktVVRVWrVoFSZKQnp4OLy8vzJw5E9OnT4evr6/oeHesqKgIeXl5Vjl/DLCQiYisVk5ODiRJQnJyMsrLyxEWFoa0tDSMGjUKDg4OouPdNUVRAICFTERE6mc0GrFmzRrodDrs3r0bHh4eiImJQXR0NLp06SI63n2RZRl+fn7w9PQUHaVBsJCJiKzAsWPHoNfrkZSUhHPnzmHIkCFITU3FmDFj4OjoKDpevZBl2WpHxwALmYjIYtXU1GD9+vXQ6XTYvn073N3dERUVhZiYGHTr1k10vHpVUVGBQ4cOWeWCINewkImILExeXh7i4uKQkJCAkpIShISEIDk5GePHj4eTk5PoeA0iPT0dZrPZ6jaU+DUWMhGRBaitrcWmTZug0+mwefNmuLq6IjIyErGxsejZs6foeA1OlmW0bt3a4ufBb4eFTESkYkVFRYiPj0d8fDyKi4vRt29fxMXFITw8HM7OzqLjNZpr88eNuatUY2MhExGpTF1dHbZs2QKdToeNGzfCyckJERERiI2NRZ8+fUTHa3RGoxH79u3DvHnzREdpUCxkIiKVOHv2LBITE6HX65Gfn49evXrh888/R0REBNzc3ETHEyYrKwvV1dVWPX8MsJCJiIQymUzYuXMndDod1q1bB3t7e4SHhyM2NhZBQUFWfYr2TsmyDGdnZwQEBIiO0qBYyEREApSWliIpKQl6vR7Hjx9H9+7d8cknnyAyMhLu7u6i46mKLMsIDg62iLW274d1vzsiIhUxm80wGAzQ6XRYvXo1AGD8+PFITEy0+guW7pXJZIIsy1Z9//E1LGQiogZ24cIFLFmyBJIkIScnB35+fpg3bx6ioqLg4eEhOp6q5ebmoqyszOrnjwEWMhFRgzCbzdi7dy8kScLKlStRW1uLMWPGYOHChQgNDYVWqxUd0SLIsgw7OzsEBQWJjtLgWMhERPXo4sWLWLp0KSRJQnZ2Nnx9fTFnzhxMmTIFXl5eouNZHFmWERgYCBcXF9FRGhwLmYioHmRmZkKn0yE1NRXV1dUYOXIk5s+fj2HDhnE0fB8MBgNGjx4tOkajYCETEd2jyspKrFixAjqdDpmZmWjfvj1mz56NadOmoV27dqLjWbyioiLk5eVZ9Q5Pv8ZCJiK6S9nZ2ZAkCSkpKaisrMSIESOwYcMGjBgxwupvzWlMiqIAAAuZiIj+T1VVFVatWgVJkpCeng4vLy/MnDkT0dHR8PHxER3PKsmyDD8/P3h6eoqO0ihYyEREt5GTkwNJkpCcnIzy8nKEhYUhLS0No0aNgoODg+h4Vs1gMNjM6BhgIRMR3cBoNGLNmjXQ6XTYvXs3PDw8EBMTg+joaKve/k9NKioqkJ2djZkzZ4qO0mhYyEREvzh27Bj0ej2SkpJw7tw5DBkyBKmpqRgzZgwcHR1Fx7Mp6enpMJvNNrEgyDUsZCKyaTU1NVi/fj10Oh22b98Od3d3TJ48GTExMfD39xcdz2bJsozWrVvb1BkJFjIR2aS8vDzExcUhISEBJSUlCAkJQXJyMsaPHw8nJyfR8WyeLMs2t743C5mIbEZtbS02bdoEnU6HzZs3w9XVFZGRkYiNjUXPnj1Fx6NfGI1G7Nu3D/PmzRMdpVGxkInI6hUVFSE+Ph7x8fEoLi5G3759ERcXh/DwcDg7O4uOR7+TlZWF6upqm5o/BljIRGSl6urqsGXLFuh0OmzcuBFOTk6YOHEiYmNj0bt3b9Hx6DZkWYazszMCAgJER2lULGQisipnz55FYmIi9Ho98vPz0atXL3z++eeIiIiAm5ub6Hh0B2RZRnBwsM2temZb75aIrJLJZMKOHTsgSRLWrVsHBwcHTJgwAbGxsQgKCrKpC4MsnclkgizLeOWVV0RHaXQsZCKyWKWlpUhKSoJer8fx48fRvXt3fPLJJ4iMjIS7u7voeHQPcnNzUVZWZnPzxwALmYgsjNlshsFggE6nw+rVqwEA48ePR2Jios3dJmONZFmGnZ0dgoKCREdpdCxkIrIIFy5cwJIlSyBJEnJycuDn54d58+YhKioKHh4eouNRPZFlGYGBgXBxcREdpdGxkIlItcxmM/bu3QtJkrBy5UrU1tZizJgxWLhwIUJDQ6HVakVHpHpmMBgwevRo0TGEYCETkepcvHgRS5cuhSRJyM7Ohq+vL+bMmYMpU6bAy8tLdDxqIEVFRcjLy7PJ+WOAhUxEKpKZmQmdTofU1FRUV1dj5MiRmD9/PoYNG8bRsA1QFAUAMHDgQMFJxGAhE5FQlZWVWLFiBXQ6HTIzM9G+fXvMnj0b06ZNQ7t27UTHo0YkyzL8/Pzg6ekpOooQLGQiEiI7OxuSJCElJQWVlZUYMWIENmzYgBEjRtjcghD0M4PBgEGDBomOIQx/64mo0VRVVWHVqlWQJAnp6enw8vLCzJkzER0dDR8fH9HxSKCKigpkZ2dj1qxZoqMIw0ImogaXk5MDSZKQnJyM8vJyhIWFIS0tDaNGjYKDg4PoeKQC6enpMJvNHCETEdU3o9GINWvWQKfTYffu3WjVqhViYmIQHR1tU5vO052RZRmtW7e26d8NFjIR1atjx45Br9cjKSkJ586dQ2hoKFJTUzFmzBg4OjqKjkcqdW3+2JZXWmMhE9F9q6mpwfr166HT6bB9+3a4u7tj8uTJiImJgb+/v+h4pHJGoxEZGRmYN2+e6ChCsZCJ6J7l5eUhLi4OCQkJKCkpQUhICJKTkzF+/Hg4OTmJjkcWIisrC9XV1Ta7IMg1LGQiuiu1tbX46quvIEkSNm/eDFdXV0RGRiI2NhY9e/YUHY8skCzLcHZ2RkBAgOgoQrGQieiOFBUVIT4+HvHx8SguLka/fv0QFxeH8PBwODs7i45HFkyWZQQHB9v8/ee2/e6J6Lbq6uqwZcsW6HQ6bNy4EU5OTpg4cSJiY2PRu3dv0fHICphMJsiyjFdeeUV0FOFYyER0g7NnzyIxMRF6vR75+fno1asXPv/8c0RERMDNzU10PLIiubm5KCsrs/n5Y4CFTES/MJlM2LFjByRJwrp16+Dg4IAJEybghRdeQP/+/W36dhRqOLIsw87ODkFBQaKjCMdCJrJxpaWlSEpKgl6vx/Hjx9G9e3d88skniIyMhLu7u+h4ZOVkWUZgYCBcXFxERxGOhUxkg8xmMwwGA3Q6HVavXg0AGD9+PBITE21+cQZqXAaDAaNHjxYdQxVYyEQ25MKFC1iyZAkkSUJOTg78/Pwwb948REVFwcPDQ3Q8sjFFRUXIy8vj/PEvWMhEVs5sNmPv3r2QJAkrV65EbW0txowZg4ULF+KRRx7haJiEURQFADBw4EDBSdSBhUxkpS5evIilS5dCkiRkZ2fD19cXc+bMwZQpU+Dl5SU6HhFkWYafnx88PT1FR1EFFjKRlcnMzIROp0Nqaiqqq6sxcuRIzJ8/H8OGDYNWqxUdj+i6axtK0M9YyERWoLKyEqmpqZAkCZmZmWjfvj1mz56NadOmoV27dqLjEd2goqIC2dnZmDVrlugoqsFCJrJg2dnZ0Ol0WLp0KSorKzFixAhs2LABI0aMsPllCEnd0tPTYTabOUL+Ff4XS2RhqqqqsGrVKkiShPT0dHh5eWHmzJmIjo6Gj4+P6HhEd0SWZbRu3RpdunQRHUU1WMhEFiInJweSJCE5ORnl5eUICwtDWloaRo0aBQcHB9HxiO7KtfljXuX/f1jIRCpmNBqxevVqSJKE3bt3o1WrVoiJiUF0dDRHFmSxjEYjMjIy8P7774uOoiosZCIVOnbsGPR6PZKSknDu3DmEhoYiNTUVY8aMgaOjo+h4RPclKysL1dXVnD/+HRYykUrU1NRg/fr10Ol02L59O9zd3TF58mTExMTA399fdDyieiPLMpydnREQECA6iqqwkIkEy8vLQ1xcHBISElBSUoKQkBAsWbIE48aNg5OTk+h4RPXOYDAgODiYdwL8Dn8aRALU1tbiq6++giRJ2Lx5M1xdXREZGYnY2Fj07NlTdDyiBmMymaAoCl555RXRUVSHhUzUiIqKihAfH4/4+HgUFxejX79+iIuLQ3h4OJydnUXHI2pwubm5KCsr44YSN8FCJmpgdXV12LJlC3Q6HTZu3AgnJydMnDgRsbGx6N27t+h4RI1KlmXY2dkhKChIdBTVYSETNZCzZ88iMTERer0e+fn56NWrFz7//HNERETAzc1NdDwiIWRZRmBgIFxcXERHUR0WMlE9MplM2LFjByRJwrp16+Dg4IAJEybghRdeQP/+/bkIAtk8g8GA0aNHi46hSixkonpQWlqKpKQk6PV6HD9+HN27d8cnn3yCyMhIuLu7i45HpApFRUXIy8vj/PEtsJCJ7pHZbIbBYIBOp8Pq1asBAOPHj0diYiKXBCS6CUVRAAADBw4UnESdWMhEd+nChQtYsmQJJElCTk4O/Pz8MG/ePERFRcHDw0N0PCLVkmUZfn5+8PT0FB1FlVjIRHfAbDZj7969kCQJK1euRG1tLcaMGYOFCxfikUce4WiY6A5c21CCbo6FTHQbFy9exNKlSyFJErKzs+Hr64s5c+ZgypQp8PLyEh2PyGJUVFQgOzsbs2bNEh1FtVjIRDeRmZkJnU6H1NRUVFdXY+TIkZg/fz6GDRsGrVYrOh6RxUlPT4fZbOYI+TZYyES/qKysRGpqKiRJQmZmJtq3b4/Zs2dj2rRpaNeuneh4RBZNlmW0bt2a24beBguZbF52djZ0Oh2WLl2KyspKjBgxAhs2bMCIESO4+D1RPbk2f8zrLW6NnzZkk6qqqrBq1SpIkoT09HR4eXlh1qxZmD59Onx8fETHI7IqRqMRGRkZeP/990VHUTUWMtmUnJwcSJKE5ORklJeXIywsDKtXr8bIkSPh4OAgOh6RVcrKykJ1dTXnj/8AC5msntFoxOrVqyFJEnbv3o1WrVohJiYG0dHRnM8iagSyLMPZ2RkBAQGio6gaC5ms1rFjx6DX65GUlIRz584hNDQUqampGDNmDBwdHUXHI7IZBoMBwcHBvCbjD/CnQ1alpqYG69evh06nw/bt2+Hu7o7JkycjJiYG/v7+ouMR2RyTyQRFUTBz5kzRUVSPhUxWIS8vD3FxcUhISEBJSQlCQkKwZMkSjBs3Dk5OTqLjEdms3NxclJWVcf74DrCQyWLV1tbiq6++giRJ2Lx5M1xdXREZGYnY2Fj07NlTdDwiws/zx3Z2dggKChIdRfVYyGRxioqKEB8fj/j4eBQXF6Nfv36Ii4tDeHg4nJ2dRccjol8xGAwIDAyEi4uL6Ciqx0Imi1BXV4ctW7ZAp9Nh48aNcHJywsSJExEbG4vevXuLjkdEtyDLMkaPHi06hkVgIZOqnT17FomJidDr9cjPz0evXr3w+eefIyIiAm5ubqLjEdFtFBUVIS8vD4MHDxYdxSKwkEl1TCYTduzYAUmSsG7dOjg4OGDChAl44YUX0L9/fy69R2QhFEUBAAwcOFBwEsvAQibVKC0tRVJSEvR6PY4fP47u3bvjk08+QWRkJNzd3UXHI6K7JMsy/Pz84OnpKTqKRWAhk1BmsxkGgwE6nQ6rV68GAIwfPx6LFy/GwIEDORomsmDXNpSgO8NCJiEuXLiAJUuWQJIk5OTkwM/PD/PmzUNUVBQ8PDxExyOi+1RRUYHs7GzMmjVLdBSLwUKmRmM2m7F3715IkoSVK1eitrYWY8aMwcKFC/HII49wNExkRdLT02E2mzlCvgssZGpwFy9exNKlSyFJErKzs+Hr64s5c+ZgypQp8PLyEh2PiBqALMto3bo1N3C5CyxkajCZmZnQ6XRITU1FdXU1Ro4ciQ8//BBhYWHQarWi4xFRA7o2f8wzX3eOhUz1qrKyEqmpqZAkCZmZmWjfvj1mz56NadOmoV27dqLjEVEjMBqNyMjIwPvvvy86ikVhIVO9yM7Ohk6nw9KlS1FZWYknnngCGzZswIgRI7jlGpGNycrKQnV1NeeP7xI/KemeVVVVYdWqVZAkCenp6fDy8sKsWbMwffp0+Pj4iI5HRILIsgxnZ2cEBASIjmJRWMh013JyciBJEpKTk1FeXo6wsDCsXr0aI0eOhIODg+h4RCSYwWBAcHAwz47dJf606I4YjUasXr0akiRh9+7daNWqFWJiYhAdHc2rKInoOpPJBEVRMHPmTNFRLA4LmW7r2LFj0Ov1SEpKwrlz5xAaGorU1FSMGTMGjo6OouMRkcrk5uairKyM88f3gIVMN6ipqcH69euh0+mwfft2uLu7Y/LkyYiJiYG/v7/oeESkYrIsw87ODkFBQaKjWBwWMl2Xl5eHuLg4JCQkoKSkBCEhIViyZAnGjRsHJycn0fGIyAIYDAYEBgbCxcVFdBSLw0K2AFVX67A9twRnKqpRaayFi6M92jRviqH+nnBqYndfx66trcVXX30FSZKwefNmuLq6IjIyErGxsejZs2c9vQMishWyLGPMmDGiY1gkFrKKnSytxLJ9BfjfR/NwbvcydJi1DA7OLWAym2EyAy6O9pjQ1xsTgzqgU6u7+2u0qKgI8fHxiI+PR3FxMfr164f4+HhMmDABzs7ODfSOiMiaFRUVIS8vj/PH94iFrEImkxkfbz2KRd+egJ1Wg5o6089fNwO1JvP151Uaa5G0Jw8JyinMCO2MN8IehFZ762Xq6urqsGXLFuh0OmzcuBFOTk6YOHEiYmNj0bt37wZ/X0Rk3RRFAQAMHDhQcBLLxEJWGZPJjDfSDmHNwWIAQN2vCvhm6sw/P77o2xM4W1GNj8f1uqGUz549i8TEROj1euTn56NXr174/PPPERERATc3t4Z5I0RkcwwGA/z8/ODp6Sk6ikViIavMx1uPXi/ju7XmYDG8mjfF7OH+MJlM2LFjByRJwrp16+Dg4IAJEybghRdeQP/+/bngOxHVO1mWebr6PrCQVeRkaSUWfXvilo+bqi6ibMv/Q9XJTGi09nB+KBTuj0yBxr7J9ecs+vYEKg5+g1UJC3H8+HF0794dCxYsQGRkJFq0aNEI74KIbFFFRQWys7Mxa9Ys0VEsFgtZRZbtK4CdRnP9NPTvla6bD/vmreE+JArG00dxKfNLmKor4THy9evPMZvqIG3/AY8HBWHx4sUYOHAgR8NE1ODS09NhNps5Qr4PLGSVqLpahxX7C25ZxgBg39wTrce9AwBw7fMUNI7NUJn1FdyCxqJJ644AAI3WDp4hYxD3Vth93xJFRHSnZFlG69atuZTufeAu8SqxPbcEl6/W3fY5rn2e/M2/3fo8BQCoOnHgN1+//Mt9y0REjcVgMGDQoEE8I3cfWMgqcaaiGre5YwkAYO/e9rf/btEG0GhRW/Hb8tVqgLMV1fUdkYjopoxGIzIyMjB48GDRUSwaC1klKo210N7tX5a3eL5Wo8ElY209pCIi+mNZWVmorq7m/PF9YiGrhIujPUy3mT8GgNoLp2/8t9kE++a/vefPZDbD1ZGXBxBR45BlGc7OzggICBAdxaKxkFWiTfOm+IM1QHAp86vf/Pti5kYAgFOnPr/5uskMeDVvWq/5iIhuxWAwIDg4GPb2HAjcD/70VGKovyecm9jd9sKu2ooS/JT2Tzh16gNjcS4uf78TzboPQRPPTr95np2pBp61PwFoe/MDERHVE5PJBEVRMHPmTNFRLB5HyCrh1MQO4f06wO4288itnv4rNHYOuPBtEqpO7Idr76fg8cRvb8LXwIya3G/Rv08gwsLC8PXXX8NkMjV0fCKyUbm5uSgrK+P8cT3QmM1/MHEJ4OLFi2jevDkqKiq49nEDOllaiUcX7Lrv42ydNRAHdn6NBQsW4MCBA+jWrRv+/Oc/Y9KkSdzXmIjqlV6vx4wZM1BeXs49kG/hTjuUI2QV6dTKBTNCO9/XMWaEdoafVws899xzyMjIwO7du+Hv74/Y2Fh06NAB7777LkpKeI8yEdUPg8GAwMBAlnE9YCGrzBthD2JsYLt7+t6xge3wRtiD1/+t0WgwePBgrFmzBj/++CPCw8Px8ccfo0OHDpg2bRqOHDlSX7GJyEbJssz7j+sJC1lltFoNPh7X6/pI+XZzyr9+/KXQzjfdevGaLl264LPPPkNRURH++c9/YvPmzejZsyeGDx+Ob775Bncwc0FE9BtFRUXIy8vj/HE9YSGrkFarwezh/tj5eiimDPSFnanm569rAHut5vqKXi6O9pgy0Bc7Xw/FX4b737KMf83d3R1//etfcerUKSxduhTnzp3D448/jp49eyIxMRHV1Vzhi4jujKIoAICBAwcKTmIdeFGXBfDt7Id+o6di+OgJuGSshaujPbyaN8VQf8/73kDCbDZj9+7dWLBgAb788ku0atUKM2bMwIsvvojWrVvX0zsgImv08ssvY8uWLfjxxx9FR1G1O+1QFrLKFRcXo3379khLS8MzzzzToK/1448/4r///S8WL14Mk8mE559/Hq+++iq6d+/eoK9LRJYpICAAffr0QUJCgugoqsarrK1EY54S6tq1Kz7//HMUFhbi3XffxcaNG/HQQw/hiSeewLZt2zjPTETXVVRUIDs7m/PH9YiFrHKyLKNTp07w8vJqtNd84IEH8Le//Q15eXlYsmQJTp8+jbCwMPTq1QtJSUkwGo2NloWI1Ck9PR1ms5mFXI9YyCqnKIqwX/gmTZogMjISBw8exI4dO+Dj44MpU6bAx8cH//rXv3Du3DkhuYhIPIPBgNatW6NLly6io1gNFrKKXbp0Cd99953wKxg1Gg0eeeQRfPnll8jJycHo0aPx73//G97e3njhhReQm5srNB8RNT5ZljFo0CBo7nbbWLolFrKK7du3DyaTSXgh/5q/vz90Oh0KCwvx1ltvYd26dejWrRueeuop7Nixg/PMRDbAaDQiIyODC4LUMxayiimKAnd3d3Tr1k10lBt4eHjg7bffRn5+PhYvXoyCggIMHToUgYGBWLJkCa5evSo6IhE1kKysLFRXV3P+uJ6xkFVMURSEhIRAq1Xv/02Ojo6YPHkyDh06hK1bt6Jt27aIioqCr68v5s2bh/Pnz4uOSET1TJZlODs7IyAgQHQUq6LeT3obV1tbi/T0dFWdrr4djUaDxx57DJs2bcL333+Pp556Cv/85z/h7e2NGTNmcOEAIitiMBgQHBwMe3t70VGsCgtZpQ4fPozKykqLPCXUvXt36PV6FBQU4M0338Tq1avh7++PUaNGYdeuXZxnJrJgJpMJiqJw/rgBsJBVSlEUODg4oG/fvqKj3LPWrVtjzpw5yM/PR3x8PE6ePInQ0FD07dsXy5Yt4zwzkQXKzc1FWVmZRQ4W1I6FrFKyLKNPnz5wcnISHeW+NW3aFFOnTsXhw4fxzTffoFWrVpg0aRI6deqE+fPn48KFC6IjEtEdkmUZdnZ2CAoKEh3F6rCQVUrkgiANRaPRYNiwYdi8eTMOHz6Mxx9/HHPmzEH79u3xyiuv4Pjx46IjEtEfMBgMCAwMhIuLi+goVoeFrEIFBQUoKiqymAu67kWPHj0QHx+PgoIC/OUvf8GKFSvQtWtXjBkzBgaDgfPMRColyzLnjxsIC1mFZFkGAISEhAhO0vA8PT3x3nvvoaCgAJIk4ejRo/jTn/6E/v37IzU1FTU1NaIjEtEvioqKkJeXZ3Vn79SChaxCiqKga9euNrUfsZOTE6Kjo3HkyBFs2rQJLVq0QEREBDp16oSPPvoI5eXloiMS2bzG3H3OFrGQVUhRFJv9hddqtRgxYgS2bt2KQ4cO4bHHHsNbb72F9u3bY9asWTh58qToiEQ2y2AwwM/PD56enqKjWCUWsspc22PUVgv51x5++GEsXrwY+fn5+POf/4xly5bBz88PzzzzDBRF4TwzUSPj/HHDYiGrzN69e7nH6O+0adMGc+fORUFBARYtWoTvv/8egwYNwoABA7Bq1SrU1taKjkhk9a4NFvjZ1HBYyCqjKAo8PDzQtWtX0VFUp1mzZoiNjcUPP/yAjRs3wtnZGRMmTEDnzp2xYMECVFRUiI5IZLXS09M5WGhgLGSVkWUZISEh3GP0NrRaLZ588kls374dBw8eRGhoKN588014e3vjtddeQ15enuiIRFbHYDCgdevW6NKli+goVouFrCI1NTXYt28f/wK9CwEBAUhOTkZeXh5eeeUVJCUloXPnznj22Wexd+9e0fGIrMa1+WMOFhoOC1lFDh06hCtXrvCCrnvQtm1b/Pvf/0ZhYSEWLlyI7777DgMGDEBISAjS0tI4z0x0H4xGIzIyMjhYaGAsZBWRZRmOjo7o06eP6CgWy9nZGS+++CJyc3OxYcMGODo6Yvz48fDz88N//vMfXLx4UXREIouTlZWF6upqFnIDYyGriKIo6NevHxwdHUVHsXharRYjR47Ezp07kZmZiUGDBuEvf/kLvL298cYbb6CgoEB0RCKLYTAY4OzsjICAANFRrBoLWSXMZrNNLwjSkHr37o2UlBTk5eXhxRdfREJCAjp16oTw8HBkZGSIjkekerIsIzg4GPb29qKjWDUWskqcOnUKZ86c4SmhBtSuXTt88MEHKCwsxH/+8x8cOHAAQUFBGDRoENasWYO6ujrREYlUx2QyQVEULgjSCFjIKnFtjVhb2FBCNBcXF7z88ss4evQo1q5dC61Wi2eeeQZdu3bF//73P1y6dEl0RCLVyM3NRVlZGQcLjYCFrBKKoqBbt25o2bKl6Cg2w87ODqNHj8bu3buRkZGBoKAgvPbaa/D29sbs2bNRWFgoOiKRcLIsw87ODkFBQaKjWD0WskrIssy/QAXq168fli9fjlOnTiEmJgZ6vR4dO3ZEREQEDhw4IDoekTAGgwGBgYFwcXERHcXqsZBV4MKFC/j+++95QZcKeHt748MPP0RhYSEWLFiAvXv3ol+/fhgyZAjWr1/PeWayOdxQovGwkFUgPT0dAPcYVRNXV1fMnDkTx44dw+rVq1FXV4fRo0fD398fn3/+OS5fviw6IlGDKyoqQl5eHs/eNRIWsgrIsgxPT0907txZdBT6HTs7O4wdOxayLGPv3r3o06cPZs2aBW9vb/ztb39DcXGx6IhEDebaxaYcLDQOFrIKXLv/mGvEqltQUBBWrFiBEydOYOrUqVi0aBF8fX0RGRmJrKws0fGI6p3BYICfnx88PT1FR7EJLGTBrl69ioyMDP4FakF8fHzw8ccfo7CwEB999BEMBgP69OmDRx55BF9++SVMJpPoiET1gvPHjYuFLBjXiLVcbm5uePXVV3H8+HGsWrUK1dXVGDVqFPz9/fH//t//w5UrV0RHJLpnFRUVyM7O5mdTI2IhC6YoCpycnBAYGCg6Ct0je3t7jB8/Hunp6dizZw8CAgLw8ssvw9vbG2+99RZOnz4tOiLRXUtPT4fZbGYhNyIWsmCKoqB///5wcHAQHYXqwYABA7Bq1SocP34czz//PP73v//B19cXUVFROHTokOh4RHfMYDCgdevW6NKli+goNoOFLJDZbOaCIFaqY8eO+PTTT1FUVIT3338fO3fuREBAAB577DFs2rSJ88yketfmj3mxaeNhIQt0/PhxlJaW8oIuK9a8eXO8/vrrOHnyJFasWIGLFy/iySefxEMPPQS9Xo+qqirREYluYDQakZGRwcFCI2MhC6QoCjQaDQYMGCA6CjUwe3t7TJgwAfv27YMsy+jevTteeOEFeHt7Y86cOTh79qzoiETX8WJTMVjIAsmyjB49eqBFixaio1Aj0Wg0GDhwIFavXo1jx45h4sSJWLBgAXx8fDB16lQcPnxYdEQiGAwGODs7IyAgQHQUm8JCFujagiBkmzp37oz//ve/KCoqwr/+9S9s3boVDz/8MIYNG4bNmzfDbDaLjkg2SpZlDBgwAPb29qKj2BQWsiDnzp1Dbm4uC5nQokUL/OUvf8HJkyexfPlylJWVYcSIEejRowfi4+NRXV0tOiLZEJPJBEVReLpaABayIHv27AEA/tLTdQ4ODnjuueewf/9+7N69G127dkVMTAw6dOiA9957Dz/99JPoiGQDcnNzUVZWxs8mAVjIgiiKgrZt28LHx0d0FFIZjUaDwYMHY+3atfjxxx8xYcIEfPTRR+jQoQOmT5+O77//XnREsmIGgwF2dnYICgoSHcXmsJAF4YYSdCe6dOmCzz77DIWFhXjvvffw9ddfo0ePHnj88cexZcsWzjNTvZNlGYGBgXBxcREdxeawkAWorq7G/v37eUqI7ljLli3x5ptv4tSpU0hJScFPP/2E4cOH4+GHH0ZiYiLnmanecEMJcVjIAmRmZuLq1au8oIvuWpMmTTBp0iRkZmZi586d6NixI6ZNmwYfHx/885//RGlpqeiIZMGKioqQl5fHwYIgLGQBFEWBs7MzevXqJToKWSiNRoPQ0FBs2LABR48exTPPPIMPPvgAHTp0QExMDHJyckRHJAukKAoAcLAgCAtZAFmWERwczHv8qF507doVixYtQmFhId555x18+eWX6N69O5588kls376d88x0xwwGA/z8/ODp6Sk6ik1iITcys9mMPXv28C9QqncPPPAA/v73vyMvLw/JyckoLi7GY489hoCAACQnJ8NoNIqOSCrH+WOxWMiN7OjRozh//jwLmRqMo6Mjnn/+eRw8eBDbt2+Ht7c3Jk+eDF9fX/z73//G+fPnRUckFaqoqEB2djbnjwViITcyWZah1WoRHBwsOgpZOY1Gg0cffRQbN25ETk4Onn76afzrX/+Ct7c3XnzxRRw9elR0RFKR9PR0mM1mFrJALORGpigKHn74Ybi5uYmOQjbE398fOp0OhYWF+Pvf/461a9fC398fI0eOxM6dOznPTDAYDGjdujW6dOkiOorNYiE3Mm4oQSJ5eHjg7bffRn5+PhYvXoz8/Hw8+uij6N27N1JSUnD16lXREUmQa/PHXKxIHBZyIyopKcGxY8d4SoiEc3R0xOTJk3Ho0CFs2bIFbdq0wfPPPw9fX1+8//77KCsrEx2RGpHRaERGRgY/mwRjITeiaxtKcIRMaqHRaBAWFoZNmzbh+++/x1NPPYV//OMf8Pb2xksvvYRjx46JjkiNICsrC9XV1SxkwVjIjUhRFHh7e8Pb21t0FKIbdO/eHXq9HgUFBZg9eza++OILPPjgg3j66aexa9cuzjNbMYPBAGdnZwQEBIiOYtNYyI1IlmX+BUqq17p1a7z77rsoKChAXFwcjh8/jtDQUPTr1w/Lly9HTU2N6IhUz2RZxoABA7hYkWAs5EZSVVWFrKwsnq4mi9G0aVNMmzYNR44cwebNm/HAAw9g4sSJ6NixIz788ENcuHBBdESqByaTCYqicLCgAizkRrJ//37U1NSwkMniaDQaDB8+HN988w0OHz6M4cOH45133oG3tzdmzpyJEydOiI5I9yE3NxdlZWUsZBVgITcSWZbh6uqKnj17io5CdM969OiBhIQEFBQU4PXXX0dqair8/PwwduxYyLLMeWYLZDAYYGdnh6CgINFRbB4LuZEoioIBAwbAzs5OdBSi++bp6Yl//OMfKCgogCRJyMnJweDBgxEUFIQVK1ZwntmCyLKM3r17w8XFRXQUm8dCbgQmk4kbSpBVcnJyQnR0NL7//nts2rQJzZs3x3PPPYfOnTvj448/Rnl5ueiI9Ad4sal6sJAbwQ8//IDy8nL+0pPV0mq1GDFiBLZu3YrvvvsOQ4cOxd///nd4e3vj1VdfxalTp0RHpJsoKipCXl4eP5tUgoXcCBRF4RwN2YxevXpdX5bz1VdfxdKlS9GlSxeMGzfu+uI4pA6yLAPgYkVqwUJuBIqiICAgAM7OzqKjEDWaNm3aYO7cuSgoKMDnn3+Ow4cPY+DAgQgODsaqVatQW1srOqLNk2UZfn5+8PT0FB2FwEJuFJyjIVvWrFkzvPDCC8jJycGXX36JZs2aYcKECejSpQsWLFiAiooK0RFt1rUNJUgdWMgN7MyZMzh16hRPCZHN02q1eOqpp7Bjxw5kZWXhT3/6E/7617/C29sbr732GvLz80VHtCkVFRXIzs7mYEFFWMgNTFEUAJyjIfq1wMBALFmyBHl5eXj55ZeRlJSETp06YcKECdi3b5/oeDZhz549MJvNLGQVYSE3MFmW0bFjR7Rt21Z0FCLVadeuHebNm4fCwkJ89tlnyMrKQnBwMAYOHIjVq1ejrq5OdESrJcsyWrdujS5duoiOQr9gITcwRVE4Oib6A87OzpgxYwaOHj2K9evXw8HBAePGjYOfnx/++9//4tKlS6IjWp1r88cajUZ0FPoFC7kBXb58GQcPHmQhE90hrVaLUaNG4dtvv8WBAwcQEhKCN954A+3bt8df/vIXFBQUiI5oFYxGIzIyMni6WmVYyA1o3759qKur4y890T3o06cPli5dilOnTuHFF19EfHw8OnXqhOeeew779+8XHc+iZWVlobq6mp9NKsNCbkCKoqBFixbo3r276ChEFqt9+/b44IMPUFhYiP/85z/Yv38/+vfvj8GDB2Pt2rWcZ74HBoMBzs7OCAgIEB2FfoWF3IAURUFISAi0Wv6Yie6Xi4sLXn75ZRw9ehRr166FRqPB2LFj0bVrV3z22WeorKwUHdFiyLKMAQMGwN7eXnQU+hU2RQOpq6vjhhJEDcDOzg6jR4/G7t27kZGRgaCgIPz5z3+Gt7c3/vrXv6KoqEh0RFUzmUxQFIWnq1WIhdxAjhw5gkuXLrGQiRpQv379sHz5cpw8eRLR0dGQJAkdO3bExIkTkZmZKTqeKuXm5qKsrIyFrEIs5AaiKAocHBzQr18/0VGIrF6HDh3w4YcforCwEB9//DH27NmDvn37IjQ0FBs2bIDJZBIdUTUMBgM3u1EpFnIDubbpd7NmzURHIbIZrq6umDVrFo4fP460tDTU1NTg6aefxoMPPohFixbh8uXLoiMKd+2zycXFRXQU+h0WcgPhgiBE4tjZ2eGZZ56BoihIT09H79698corr8Db2xt///vfcfr0adERheFmN+rFQm4AhYWFKCgo4C89kQoEBwdj5cqVOHHiBKZMmYKFCxfC19cXzz//PA4ePCg6XqMqKipCXl4eP5tUioXcAK5tKBESEiI4CRFd4+vri08++QRFRUWYP38+du/ejd69e+PRRx/Fxo0bbWKeWZZlANzsRq1YyA1AURR06dKFm34TqZCbmxv+/Oc/4/jx41i1ahWuXLmCkSNHolu3btDpdLhy5YroiA1GlmV07dqVn00qxUJuALzHj0j97O3tMX78eOzduxd79uzBww8/jJdeegne3t54++23cebMGdER6x3nj9WNhVzPLl26hEOHDvGUEJEFGTBgAL744gscP34czz//PP773//Cx8cHkydPxqFDh0THqxcVFRXIzs5mIasYC7me7d27FyaTiYVMZIE6duyITz/9FEVFRZg3bx527NiBgIAAPPbYY9i0aZNFzzPv2bMHZrOZhaxiLOR6pigKHnjgAfj7+4uOQkT3qHnz5njjjTdw4sQJpKamoqKiAk8++SQeeugh6PV6VFVViY5412RZRuvWrdGlSxfRUegWWMj1TJZlhISEcNNvIivg4OCA8PBwZGRkwGAwoFu3bnjhhRfQoUMHzJkzB2fPnhUd8Y7JsozBgwfzs0nFWMj1qLa2Fnv37uXpaiIro9FoMGjQIKxZswbHjh3Dc889hwULFsDHxwdTp07FkSNHREe8LaPRiIyMDJ6uVjkWcj3Kzs7G5cuX+UtPZMU6d+6M//3vfygsLMTcuXOxZcsW9OzZE8OHD8c333wDs9ksOuINMjMzUV1dzc8mlWMh1yNZltGkSRP06dNHdBQiamDu7u6YPXs2Tp06hWXLluHcuXN4/PHH0aNHDyQkJKC6ulp0xOtkWYazszMCAgJER6HbYCHXI0VR0LdvXzRt2lR0FCJqJA4ODoiIiMCBAwewa9cu+Pn5ITo6Gh06dMA//vEP/PTTT6IjQpZlDBgwAPb29qKj0G2wkOuJ2WzmTfdENkyj0eBPf/oT1q1bh6NHj+LZZ5/Fhx9+iA4dOiA6Oho//PCDkFwmk4mLFVkIFnI9yc/Px+nTp3lBFxHBz88PCxcuRGFhId577z1s2rQJDz30EEaMGIGtW7c26jxzbm4uysrKWMgWgIVcT7ihBBH9XsuWLfHmm2/i1KlTSElJwdmzZzFs2DD06tULixcvhtFobPAMBoMBdnZ2CAoKavDXovvDQq4niqLA398fHh4eoqMQkco0adIEkyZNQlZWFnbs2AFfX19MnToVPj4+mDt3LkpLSxvstWVZRu/eveHi4tJgr0H1g4VcT2RZ5ulqIrotjUaDRx55BBs2bEBubi7Gjh2L999/Hx06dEBsbCxyc3Pv+zWqrtZhY/ZpxBlO4tNtP8JQ2gS+fxqLqqt19fAOqCFpzHcwmXHx4kU0b94cFRUVcHNza4xcFqW8vBwtW7ZEQkICpkyZIjoOEVmQc+fOQZIkLFy4EGfPnsWTTz6J1157DY888shdrap1srQSy/YVYMX+Aly+WgetBtBogNraOmi0dnBxtMeEvt6YGNQBnVpxtNyY7rRDOUKuB3v37uWi7UR0Tzw8PPDWW28hLy8PSUlJKCwsxNChQxEYGIglS5bg6tWrt/1+k8mMD7/JxaMLdiEpPQ+XfxkJm8xAnQnQaO0AAJXGWiTtycOjC3bhw29yYTKpbwETW8dCrgeyLKNVq1ZctJ2I7pmjoyOioqLw3XffYdu2bWjXrh2ioqLg6+uLefPm4fz58zd8j8lkxhtph7Do2xMAgLo/KNm6X06ILvr2BN5IO8RSVhkWcj1QFAUDBw7kou1EdN80Gg2GDh2Kr776Cj/88ANGjhyJuXPnwtvbGzNmzMCPP/54/bkfbz2KNQeL7+l11hwsxsdbj9ZXbKoHnEO+TzU1NWjevDnmzp2L119/XXQcIrJCpaWl0Ol0WLhwIX766SeMHDkSEbGv4k355ttA1l46h3LDMlSfzERd1UXYuTwAp0690fKxGGjsHH7z3J2vh6Kjh3NjvA2bxTnkRnLw4EFUVVXxCmsiajCtWrXCO++8g/z8fCQmJuLUqVOYsSAVMJlueG7tpfM4m/waruTsRjP/wWj5WCxcHnoExoIjMNf89r5nO40Gy/blN9bboD/AhU3vk6IoaNq0KXr37i06ChFZuaZNm2LKlCmYEBGJwLnfwHiTO5nKdyWj7nI5vJ7/BI5t/K5/vcWfJt2wQlid2YwV+wvxetiDcGpi19Dx6Q9whHyfFEVB//790aRJE9FRiMhG7Dj6003L2Gw24cqxvXDq0v83ZXzNza5zqTTWYntuSUPEpLvEQr4P1zaU4OlqImpMZyqqob3JNaSmKxUwG6/AoZXPHR9LqwHOVqhnq0hbxkK+DydPnkRJSQkLmYgaVaWxFtp6uqtDq9HgkrG2Xo5F94eFfB+4oQQRieDiaA/TTW6Q0TZrDo1jM9SU3vmFWiazGa6OvJxIDVjI90GWZTz00ENwd3cXHYWIbIi7488rcf2eRqNFM79gVB3PgPHMsRsev9ldriYz4NW8aUPEpLvEQr4P1xYEISJqDN999x1efPFFTH28P0zGKzd9Toshz8OuWXOULH8TZdvicOm7zSiXl+N0/AyYjZdveL6Loz2G+ns2dHS6Ayzke1RWVoYffviB61cTUYO6fPkyEhMTERQUhMDAQKxfvx6vvjwD4f28YXeTeWR7Vw94Pf8Jmj04EJd/+BZlWyVcPrIDTTv0hMbB8TfPtdNoEN7Pm7c8qQQnDu7Rnj17AIAjZCJqEIcPH4YkSUhJScGlS5cwfPhwrF27Fk899RTs7e1xsrQSq7J33fR77Zu3hsdTr/3ha9SZzZgYdOdXZFPDYiHfI0VR4OXlhY4dO4qOQkRWoqqqCqtWrYIkSUhPT4enpydefvllTJ8+/YbPmk6tXDAjtPP1jSXuxYzQzlw2U0VYyPdIURQMGjSIG0oQ0X374YcfIEkSlixZgvLycoSFhSEtLQ2jRo2Cg4PDLb/vjbAHcbai+p42mBgb2A5vhD14P7GpnrGQ74HRaERGRgY++OAD0VGIyEJVV1cjLS0NkiRd38I1NjYW0dHR6Ny58x0dQ6vV4ONxveDVvCkWfXsCdhrN9S0Wb+ba4y+FdsbrYQ9Ce7PVRUgYFvI9yMrKgtFo5PwxEd213Nxc6PV6JCcno6ysDI8++ihWrlyJ0aNH39MSvFqtBrOH+2N8H28s25ePFfsLf1k45OdFP0xmM0zmn6+mDu/njYlBPjxNrVIs5HugKAqaNWuGgIAA0VGIyAIYjUasWbMGkiRh165d8PDwwNSpUxETEwM/vxvXnL4XHT2c8faT3fF62IPYnluCsxXVuGSshaujPbyaN8VQf09eTa1yLOR7IMsygoKCbju3Q0T0448/Qq/XIykpCefPn8eQIUOwfPlyjB07Fo6Ojn98gHvg1MQOTz3ctkGOTQ2LhXyXzGYz9uzZg9jYWNFRiEiFrl69irVr10KSJOzcuRMtW7bE5MmTER0dDX9/f9HxSMVYyHfp2LFjKC0t5YIgRPQbJ06cgF6vx+LFi1FaWorBgwdj6dKleOaZZ9C0KZempD/GQr5LsixDo9EgODhYdBQiEqympgbr16+HJEnYtm0bWrRogaioKMTExKB79+6i45GFYSHfJUVR0LNnTzRv3lx0FCIS5NSpU4iLi0NiYiJKSkoQEhKC5ORkjB8/Hk5OTqLjkYViId8lRVEwdOhQ0TGIqJHV1NRg48aNkCQJW7ZsgZubGyIjIxETE4OePXuKjkdWgJtL3IXS0lIcPXqU9x8T2ZD8/Hy888478PHxwdixY1FeXo6EhAScPn0an332GcuY6g1HyHfh2oYSvKCLyLrV1tZi06ZNkCQJX3/9NVxcXDBp0iTExsaiV69eouORlWIh3wVFUdC+fXt06NBBdBQiagCFhYVISEhAfHw8iouL0bdvX+j1eoSHh8PFxUV0PLJyLOS7IMsyT1cTWZm6ujps3rwZkiThq6++QrNmzRAREYHY2Fj07t1bdDyyISzkO1RdXY3MzExERESIjkJE9aC4uPj6aLiwsBCBgYFYtGgRIiIi4OrqKjoe2SAW8h06cOAArl69yhEykQWrq6vDli1bIEkSNm7cCEdHR0RERCAmJgZ9+/bldqokFAv5DsmyDBcXF15RSWSBzpw5g8TERMTFxSE/Px+9evXCZ599hokTJ8LNzU10PCIALOQ7pigKBgwYAHt7/siILIHJZMK2bdsgSRI2bNgABwcHhIeHIzY2Fv379+domFSH7XIHTCYTFEXBrFmzREchoj9QUlKCxYsXIy4uDidPnkSPHj3w6aefYtKkSWjRooXoeES3xEK+A7m5ubhw4QLnj4lUymQyYefOnZAkCevWrYOdnR2effZZpKSkYMCAARwNk0VgId8BRVFgZ2eHoKAg0VGI6FdKS0uRlJQEvV6P48ePo1u3bvjoo48QGRmJli1bio5HdFdYyHdAlmX06tWLt0IQqYDZbMauXbsgSRLWrFkDjUaDcePGITExEYMGDeJomCwWC/kOKIqCJ554QnQMIpt2/vx5JCcnQ5Ik/Pjjj3jwwQfx/vvvIyoqCg888IDoeET3jYX8B86ePYsTJ05w/WoiAcxmMwwGAyRJQlpaGsxmM5555hlIkoQhQ4ZwNExWhYX8BxRFAQBe0EXUiMrKyrBkyRLo9Xrk5OTAz88P//73vxEVFYVWrVqJjkfUIFjIf0BRFPj4+KBdu3aioxBZNbPZjD179kCSJHzxxReoq6vDmDFjsHDhQoSGhkKr5W6xZN1YyH9AURSeriZqQOXl5UhJSYFer8eRI0fQqVMnvPfee5g8eTI8PT1FxyNqNCzk27hy5QqysrIwefJk0VGIrIrZbMa+ffsgSRJWrlyJmpoaPP3001iwYAGGDh3K0TDZJBbybWRkZKC2tpbzx0T1pKKiAsuWLYMkScjOzoavry/efvttTJkyBW3atBEdj0goFvJtKIqC5s2b46GHHhIdhchimc1mHDhwAJIkITU1FUajESNHjsT8+fMxbNgwjoaJfsFCvg1ZljFgwADY2dmJjkJkcS5duoTly5dDkiQcPHgQ3t7eePPNNzF16lReJEl0E/zT9BZMJhPS09N5uproLmVlZSE2NhZt27bFjBkz0L59e2zcuBGnTp3CO++8wzImugWOkG/h+++/R0VFBa+wJroDlZWVWLFiBSRJwoEDB9CuXTu8/vrrmDZtGry9vUXHI7IILORbkGUZ9vb26N+/v+goRKr13XffQa/XY+nSpaisrMSIESOwfv16PPHEE9w7nOgu8b+YW1AUBYGBgWjWrJnoKESqcvnyZaxcuRKSJCEjIwNt2rTBrFmzMH36dPj4+IiOR2SxWMi3oCgKxowZIzoGkWocPnwYkiQhJSUFly5dwvDhw7F27Vo89dRTHA0T1QP+V3QTxcXFyMvL4wVdZPOqqqqwatUqSJKE9PR0eHp64uWXX8b06dPRsWNH0fGIrAoL+Sa4oQTZuh9++AGSJGHJkiUoLy9HWFgY0tLSMGrUKDg4OIiOR2SVWMg3oSgKOnfuDC8vL9FRiBpNdXU10tLSIEkSZFlGq1atEBsbi+joaHTu3Fl0PCKrx0K+CVmWOTomm5Gbmwu9Xo/k5GSUlZXh0UcfxcqVKzF69Gg0adJEdDwim8FC/p3KykocOnQIsbGxoqMQNRij0Yg1a9ZAkiTs2rULHh4emDp1KmJiYuDn5yc6HpFNYiH/zr59+1BXV8cFQcgqHTt2DHq9HklJSTh37hyGDBmC5cuXY+zYsXB0dBQdj8imsZB/R5ZluLu7w9/fX3QUonpx9epVrF27Fnq9Hjt27EDLli0RFRWFmJgY/p4TqQgL+XcURUFISAh3oCGLd+LECej1eixevBilpaUYPHgwUlJSMG7cODRt2lR0PCL6HRbyr9TW1iI9PR1vvfWW6ChE96Smpgbr16+HJEnYtm0bWrRocX003L17d9HxiOg2WMi/cvjwYVRWVvIKa7I4p06dQlxcHBITE1FSUoKQkBAkJydj/PjxcHJyEh2PiO4AC/lXFEWBg4MD+vbtKzoK0R+qqanBxo0bIUkStmzZAjc3N0RGRiImJgY9e/YUHY+I7hIL+VcURUHfvn05oiBVy8/PR3x8PBISEnDmzBkEBQUhISEBzz77LJydnUXHI6J7xEL+FVmWER4eLjoG0Q1qa2uxadMmSJKEr7/+Gi4uLpg0aRJiY2PRq1cv0fGIqB6wkH9RUFCAoqIizh+TqhQWFiIhIQHx8fEoLi5G3759odfrER4eDhcXF9HxiKgesZB/wQ0lSC3q6uqwefNmSJKEr776Cs2aNUNERARiY2PRu3dv0fGIqIGwkH8hyzK6du2KVq1aiY5CNqq4uPj6aLiwsBCBgYFYtGgRIiIi4OrqKjoeETUwFvIvFEXh6JgaXV1dHbZs2QJJkrBx40Y4OjoiIiICMTEx6Nu3LzQajeiIRNRIWMgAKioqcPjwYcycOVN0FLIRZ86cQWJiIuLi4pCfn49evXrhs88+w8SJE+Hm5iY6HhEJwEIGsHfvXphMJo6QqUGZTCZs27YNkiRhw4YNcHBwQHh4OGJjY9G/f3+OholsHAsZP5+u9vDwQNeuXUVHIStUUlKCxYsXIy4uDidPnkSPHj3w6aefYtKkSWjRooXoeESkEixk/N/8MUcoVF9MJhN27twJSZKwbt062NnZ4dlnn0VKSgoGDBjA3zUiuoHNb2lUU1ODvXv38nQ11YvS0lJ89NFHePDBB/HYY4/hyJEj+Oijj1BcXIzk5GSEhISwjInopmx+hHzo0CFcuXKFhUz3zGw2Y9euXZAkCWvWrIFGo8G4ceOQmJiIQYMGsYCJ6I7YfCErigJHR0f06dNHdBSyMOfPn0dycjL0ej2OHj2Krl274v3330dUVBQeeOAB0fGIyMLYfCHLsox+/frB0dFRdBSyAGazGbIsQ5IkpKWlwWQy4ZlnnoFOp8OQIUM4Giaie2bThWw2m6EoCp5//nnRUUjlysrKkJKSAkmSkJOTgy5dumDu3LmYPHkyV3cjonph04Wcl5eHM2fOYNCgQaKjkAqZzWbs2bMHkiThiy++QG1tLcaMGYPPPvsMjzzyCLRam78mkojqkU0XsizLAICQkBDBSUhNysvLkZKSAr1ejyNHjqBTp0549913MWXKFHh6eoqOR0RWyqYLWVEUdO/eHS1bthQdhQQzm83Yt28fJEnCypUrUVNTg6effhoLFizA0KFDORomogZn84XM251sW0VFBZYtWwZJkpCdnQ1fX1+8/fbbmDJlCtq0aSM6HhHZEJst5AsXLuDIkSN44403REehRmY2m3HgwAFIkoTU1FQYjUaMHDkS8+fPx7BhwzgaJiIhbLaQ09PTAYAXdNmQS5cuYfny5ZAkCQcPHoS3tzfefPNNTJ06Fe3atRMdj4hsnM0WsqIo8PT0RKdOnURHoQaWlZUFSZKwfPlyXLlyBU8++STmzp2Lxx9/HHZ2dqLjEREBsOFClmWZG0pYscrKSqxYsQKSJOHAgQNo164dXn/9dUybNg3e3t6i4xER3cAmC/nq1avIyMjAvHnzREehevbdd99Br9dj6dKlqKysxIgRI7B+/Xo88cQTsLe3yV93IrIQNvkJdfDgQVRXV/MKaytx+fJlrFy5EpIkISMjA23atMGsWbMwffp0+Pj4iI5HRHRHbLKQZVmGk5MTAgMDRUeh+3D48GFIkoSlS5fi4sWLGDZsGNauXYunnnqKo2Eisjg2+amlKAqCgoLg4OAgOgrdpaqqKqxatQqSJCE9PR2enp546aWXMH36dHTs2FF0PCKie2ZzhXxtQ4no6GjRUegu/PDDD5AkCUuWLEF5eTnCwsKQlpaGUaNG8Q8rIrIKNlfIx48fx08//cT5YwtQXV2NtLQ0SJIEWZbRqlUrxMbGIjo6Gp07dxYdj4ioXtlcISuKAo1GgwEDBoiOQreQm5sLvV6P5ORklJWV4dFHH8XKlSsxevRoNGnSRHQ8IqIGYZOF3KNHD7Ro0UJ0FPoVo9GINWvWQJIk7Nq1Cx4eHpg6dSqio6PRtWtX0fGIiBqczRWyLMsIDQ0VHYN+cezYMej1eiQlJeHcuXMYMmQIli9fjrFjx8LR0VF0PCKiRmNThXz+/Hnk5ubi7bffFh3Fpl29ehVr166FXq/Hjh070LJlS0RFRSEmJgb+/v6i4xERCWFThbxnzx4A4AVdgpw4cQJ6vR6LFy9GaWkpBg8ejJSUFIwbNw5NmzYVHY+ISCibKmRZltG2bVuu3tSIampqsH79ekiShG3btqFFixbXR8Pdu3cXHY+ISDVsqpAVRcGgQYO4oUQjOHXqFOLi4pCYmIiSkhKEhIQgOTkZ48ePh5OTk+h4RESqYzOFXF1djf379+PZZ58VHcVq1dTUYOPGjZAkCVu2bIGbmxsiIyMRExODnj17io5HRKRqNlPImZmZuHr1KuePG0B+fj7i4+ORkJCAM2fOICgoCAkJCXj22Wfh7OwsOh4RkUWwmUJWFAXOzs7o1auX6ChWoba2Fps2bYIkSfj666/h4uKCSZMmITY2lj9jIqJ7YFOFHBwczF2A7lNRURHi4+MRHx+P4uJi9O3bF3q9HuHh4XBxcREdj4jIYtlEO13bUOKll14SHcUi1dXVYfPmzZAkCV999RWaNWuGiIgIxMbGonfv3qLjERFZBZso5KNHj+L8+fMYNGiQ6CgW5fTp00hISEB8fDwKCgoQGBiIRYsWISIiAq6urqLjERFZFZsoZEVRoNVqERwcLDqK6tXV1WHr1q2QJAlffvklHB0d8dxzzyE2NhZ9+/blLWNERA3EJgpZlmU8/PDDHNXdxpkzZ5CYmIi4uDjk5+fj4Ycfxv/+9z9MnDgRzZs3Fx2PiMjq2UQhK4qC4cOHi46hOiaTCdu2bYMkSdiwYQMcHBwwYcIExMbGIigoiKNhIqJGpBUdoKH99NNPOHbsGO8//pWSkhJ88MEH8PPzw/Dhw/Hjjz/i008/xenTp7F48WIEBwezjImIGpnVj5AVRQHADSVMJhN27twJSZKwbt062NnZ4dlnn0VKSgoGDBjAAiYiEswmCrlDhw7w9vYWHUWI0tJSJCUlQa/X4/jx4+jWrRs++ugjREZGomXLlqLjERHRL2yikG1tdGw2m7Fr1y5IkoQ1a9ZAo9Fg3LhxSExM5OYaREQqZdWFXFVVhczMTEyaNEl0lEZx/vx5JCcnQ6/X4+jRo+jatSvef/99REVF4YEHHhAdj4iIbsOqC3n//v2oqamx6gVBzGYzZFmGJElIS0uDyWTCM888A51OhyFDhnA0TERkIay6kBVFgZubG3r06CE6Sr0rKytDSkoKJElCTk4OunTpgrlz52Ly5Mlo1aqV6HhERHSXrLqQZVlGcHAw7OzsREepF2azGXv27IEkSfjiiy9QW1uLMWPG4LPPPsMjjzwCrdbq72IjIrJaVlvIJpMJe/bswWuvvSY6yn0rLy9HSkoK9Ho9jhw5gk6dOuHdd9/FlClT4OnpKToeERHVA6st5JycHJSXl1vsFdZmsxn79u2DJElYuXIlampq8PTTT2PBggUYOnQoR8NERFbGagtZlmXY2dkhKChIdJS7UlFRgWXLlkGSJGRnZ8PX1xdvv/02pkyZgjZt2oiOR0REDcRqC1lRFAQGBsLZ2Vl0lD9kNptx4MABSJKE1NRUGI1GjBw5EvPnz0dYWJjVzIETEdGtWXUhjxw5UnSM27p06RKWL18OSZJw8OBBeHt7480338TUqVPRrl070fGIiKgRWWUhnzlzBidPnlTt/HFWVhYkScLy5ctx5coVPPnkk5g7dy4ef/xxjoaJiGyUVRayGjeUqKysxIoVKyBJEg4cOIB27drh9ddfx7Rp02x2nW0iIvo/VlvIHTt2RNu2bUVHwaFDhyBJEpYuXYrKykqMGDEC69evxxNPPAF7e6v88RMR0T2wykaQZVno6Pjy5ctYtWoVJEnCvn370KZNG8yaNQvTp0+Hj4+PsFxERKReVlfIly9fxsGDBzF9+vRGf+0jR45AkiSkpKTg4sWLGDZsGNasWYOnnnoKDg4OjZ6HiIgsh9UVckZGBurq6hpthFxVVYVVq1ZBr9djz5498PT0xIwZMxAdHY2OHTs2SgYiIrJ8VlfIsiyjRYsW6N69e4O+zg8//ABJkrBkyRKUl5cjLCwMX3zxBZ5++mmOhomI6K5ZXSErioKQkJAGWVqyuroaaWlpkCQJsiyjVatWiI2NRXR0NDp37lzvr0dERLbDqhZErqurQ3p6er2frs7NzcVrr72Gdu3aITIyEk2aNMHKlStRVFSEDz74gGVMRET3zaJHyFVX67A9twRnKqpRaazFxfM/obbtw+g34P4L2Wg0Ys2aNZAkCbt27YKHhwemTp2K6OhodO3atR7SExER/R+LLOSTpZVYtq8AK/YX4PLVOmg1gFajQZ3JhFaj30TEe3E492goTvx0CZ1audzVsY8dOwa9Xo+kpCScO3cOQ4YMwfLlyzF27Fg4Ojo20DsiIiJbZ1GFbDKZ8fHWo1j07QnYaTWoM5l//roZMJnNADQAgJo6EwDg0QW7MCO0M94IexBareaWx7169SrWrVsHSZKwY8cOtGzZElFRUYiJiYG/v3+Dvy8iIiKLKWSTyYw30g5hzcFiALhexn9k0bcncLaiGh+P63VDKZ84cQJxcXFYvHgxfvrpJwwaNAgpKSkYN24cmjZtWu/vgYiI6FYsppA/3nr0ehnfrTUHi+HVvClmD/dHTU0NNmzYAJ1Oh23btqFFixZ4/vnnERMTg4ceeqieUxMREd0Ziyjkk6WVWPTtiZs+Vl34PS5sj8fV0jzYuz4At6Bnbvq8Rd+eQMG3q5C2eBFKSkowYMAAJCUl4dlnn4WTk1NDxiciIvpDFlHIy/YVwE6jQZ35t6epr/6Uh59WzoG2mRtaDIqA2VSHcnkZ7Jq1uOEYZlMd0rJLMH78eMTExKBnz56NlJ6IiOiPqb6Qq67WYcX+ghvKGADKDUsBmOE1cT7sm7cGADg/OBCnE1664bkarR0e6D8SH74VBqcm3HOYiIjURfULg2zPLcHlq3U3fN1sqkP1qYNw8gu+XsYA4ODhDadOvW96rMu/3LdMRESkNqov5DMV1bjZHUumKxdhrjXCwf3GPY/tW7a76bG0GuBsRXV9RyQiIrpvqi/kSmMttJpb30N8N7QaDS4Za+vlWERERPVJ9YXs4mj/y6Ifv6Vt5gaNvSNqLpy+4bHaspvfHmUym+HqqPppcyIiskGqL+Q2zZviZmuAaLR2aNoxEFXH9qK24qfrX685V4iqk1k3PZbJDHg154IfRESkPqofLg7194RzE7ubXtjVYvBEnD2VhbPL/grX3k8CpjpczPwSDh4dUFOad8PzXRztMdTfsxFSExER3R3Vj5CdmtghvF8H2N1kHrlJ645o/ew/YdesOcoNS1GZvRUtBk1Es64DbniunUaD8H7evOWJiIhUSWM232SC9ncuXryI5s2bo6KiAm5ubo2R6zdOllbi0QW77vs4O18PRUcP53pIREREdGfutENVP0IGgE6tXDAjtPN9HWNGaGeWMRERqZZFFDIAvBH2IMYG3vz+4j8yNrAd3gh7sJ4TERER1R+LKWStVoOPx/W6PlK+2Zzyr117/KXQzjfdepGIiEhNVH+V9a9ptRrMHu6P8X28sWxfPlbsL/xl4ZCfF/0wmc0wmX++mjq8nzcmBvnwNDUREVkEi7io61aqflmb+mxFNS4Za+HqaA+v5k0x1N+TV1MTEZEq3GmHWtQI+fecmtjhqYdvXMuaiIjI0ljMHDIREZE1YyETERGpAAuZiIhIBVjIREREKsBCJiIiUgEWMhERkQqwkImIiFSAhUxERKQCLGQiIiIVYCETERGpAAuZiIhIBVjIREREKsBCJiIiUgEWMhERkQqwkImIiFSAhUxERKQCLGQiIiIVYCETERGpAAuZiIhIBVjIREREKsBCJiIiUgEWMhERkQqwkImIiFSAhUxERKQCLGQiIiIVYCETERGpAAuZiIhIBezv5ElmsxkAcPHixQYNQ0REZG2udee1Lr2VOyrkS5cuAQC8vb3vMxYREZFtunTpEpo3b37LxzXmP6psACaTCadPn4arqys0Gk29BiQiIrJmZrMZly5dQtu2baHV3nqm+I4KmYiIiBoWL+oiIiJSARYyERGRCrCQiYiIVICFTEREpAIsZCIiIhVgIRMREakAC5mIiEgF/j+DmcXNtw8YTQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "nx.draw_networkx(undirected_G, pos = pos, \n",
    "                 node_size = 180)\n",
    "plt.savefig('G_4顶点_5边.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "41fd37fa-dbee-4c6f-8868-c279b6432ab7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9fdo0feO6++BkJHdtZyIyHSwkImokVwuQ/z4vo0r5dtdU27Q8PU3/Lw4epGolXgNmYhuIpfLMHtUDwQM9MSq7AtYk1Pw18Ehfx76odZooNb8eTf1BF9PvDi4Ez+mJtICDpcgojuqqlVh58kiKEurUV5TD3src7g6WGNEDxfeTU3UDM3tUK6QieiObCzNMLaPu+gYREaP15CJiIgkgIVMREQkASxkIiIiCWAhExERSQALmYiISAJYyERERBLAQiYiIpIAFjIREZEEsJCJiIgkgIVMREQkASxkIiIiCWAhExERSQALmYiISAJYyERERBLAQiYiIpIAFjIREZEEsJCJiIgkgIVMREQkASxkIiIiCWAhExERSQALmYiISAJYyERERBLAQiYiIpIAFjIREZEEsJCJiIgkgIVMREQkASxkIiIiCTBvzoM0Gg0AoKysTKdhiIiIjE1DdzZ06e00q5DLy8sBAJ6enq2MRUREZJrKy8vh4OBw26/LNHerbABqtRoXL16Evb09ZDKZVgMSEREZM41Gg/Lycri7u0Muv/2V4mYVMhEREekWb+oiIiKSABYyERGRBLCQiYiIJICFTEREJAEsZCIiIglgIRMREUkAC5mIiEgC/g//saoLGnp6WQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "nx.draw_networkx(undirected_G,\n",
    "                 node_size = 180)\n",
    "plt.savefig('G_4顶点_5边,位置不固定.svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c145fe40-f02b-444f-bc48-e431af82b104",
   "metadata": {},
   "source": [
    "## 属性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "e39eb2f7-91f5-433c-afb3-47d9f4c267d1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.order()\n",
    "# 图的阶"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3fbd693d-10fa-40d6-9a4f-d9cfc883af69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.number_of_nodes()\n",
    "# 图的节点数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "26436a31-b25d-421f-a38f-421fcd10be99",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NodeView(('a', 'b', 'c', 'd'))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.nodes\n",
    "# 列出图的节点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "d67070d1-b452-4e52-a650-a3b1d1d0c056",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a ['b', 'c', 'a']\n",
      "b ['a', 'c', 'd']\n",
      "c ['b', 'd', 'a']\n",
      "d ['b', 'c']\n"
     ]
    }
   ],
   "source": [
    "for node_i in undirected_G.nodes:\n",
    "    print(node_i, list(undirected_G.neighbors(node_i)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a1698c67-5ee4-49ce-8dc5-c41405f14910",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.size()\n",
    "# 图的大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "f4c2c037-65ac-4129-8982-ff51e30f8430",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "EdgeView([('a', 'b'), ('a', 'c'), ('b', 'c'), ('b', 'd'), ('c', 'd')])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.edges\n",
    "# 列出图的边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "35acd434-4842-4f04-b264-9e4cd492db42",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('a', 'b')\n",
      "('a', 'c')\n",
      "('a', 'a')\n",
      "('b', 'c')\n",
      "('b', 'd')\n",
      "('c', 'd')\n"
     ]
    }
   ],
   "source": [
    "for edge_i in undirected_G.edges:\n",
    "    print(edge_i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "2882d8ed-7f0d-40ca-bdd4-abb5c9f5b42d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a b\n",
      "a c\n",
      "a a\n",
      "b c\n",
      "b d\n",
      "c d\n"
     ]
    }
   ],
   "source": [
    "for u,v in undirected_G.edges:\n",
    "    print(u,v)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "11171490-3f17-4cb6-9e93-a918384730f4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.number_of_edges()\n",
    "# 图的边数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "9bf4cd9e-edcb-4e64-a55e-7ee6462b053d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.has_edge('a', 'b')\n",
    "# 判断是否存在ab边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e5d44d5d-de35-4615-80a0-a276cc446498",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.has_edge('a', 'd')\n",
    "# 判断是否存在ad边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "2f877f18-717e-4504-8eaa-a01c8d27b6b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DegreeView({'a': 2, 'b': 3, 'c': 3, 'd': 2})"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.degree()\n",
    "# 图的度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "d6b490a5-eb8d-4cc0-8819-5fd476fa015d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'a': 2, 'b': 3, 'c': 3, 'd': 2}"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dict(undirected_G.degree())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "0881dfda-8579-41ad-aa8c-e29133bd8b97",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.degree('a')\n",
    "# 图的度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "319f0298-e2f5-4486-b19d-ef4d741bea28",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['b', 'c']"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(undirected_G.neighbors('a'))\n",
    "# 邻居"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "379ead42-8308-43ac-be62-a51e2d825094",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keyiterator"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(undirected_G.neighbors('a'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "33348831-5a7f-48b4-8f27-ebe8e08591cf",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "b75c558d-7a12-4167-9596-a9612dfeeac1",
   "metadata": {},
   "source": [
    "## 删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "95ab3d3e-9ac2-413a-9fd5-ffdbe4f0d77b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# undirected_G.remove_node('a')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "2709f563-f446-4349-b874-3c462ffef54c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# undirected_G.remove_nodes_from(['b','a'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "faa26746-7741-4502-a65b-e123d84e5c0f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# undirected_G.remove_edge('b','a')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "146893f5-03dd-423d-a9e8-9963594ce5d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# undirected_G.remove_edges_from([('b','a'),('b','c')])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d26f9545-5b87-4265-a023-5115103f490d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "d80e7365-9851-4072-a88e-a9cdd1137214",
   "metadata": {},
   "source": [
    "## 自环"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "e8f19507-b943-41d2-a5fc-304931a9e25a",
   "metadata": {},
   "outputs": [],
   "source": [
    "undirected_G.add_edge('a', 'a')\n",
    "# 添加一条自环"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "26633268-3726-46c6-adfb-eb6f6dd3eb15",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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DRIRERGVT3k7VPNHyADQsl5NvNC/anfWeqF/K5YxERFpllMUMgC8NrgdxoWUvV/8OONCmuC1we1snIiIiMh2nKaQ9XodFo7vYj1SLuuc8t1Kv/5i/1ZlPnqRiIhISzR/lfXd9Hod/jIkGBO6ByLuwGWsOZTy241Dfr3ph0VVYVF/vZp6cs9ATAtrxjE1ERE5Bae4qOth8ot+vTd1elYBcgpL4OvpgYZ+XhgY3IBXUxMRkSaUt0Od6gj5fjWqGzCi84P3siYiInI2TnMOmYiIyJWxkImIiDSAhUxERKQBLGQiIiINYCETERFpAAuZiIhIA1jIREREGsBCJiIi0gAWMhERkQawkImIiDSAhUxERKQBLGQiIiINYCETERFpAAuZiIhIA1jIREREGsBCJiIi0gAWMhERkQawkImIiDSAhUxERKQBLGQiIiINYCETERFpAAuZiIhIA1jIREREGsBCJiIi0gAWMhERkQawkImIiDTAozwvUlUVAJCdnW3XMERERK6mtDtLu/RhylXIOTk5AIDAwMAqxiIiInJPOTk58PPze+jXderjKhuAxWJBWloafH19odPpbBqQiIjIlamqipycHDRu3Bh6/cPPFJerkImIiMi+eFEXERGRBrCQiYiINICFTEREpAEsZCIiIg1gIRMREWkAC5mIiEgDWMhEREQa8P8BHndTT9WSfZgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "nx.draw_networkx(undirected_G, pos = pos, \n",
    "                 node_size = 180)\n",
    "plt.savefig('G_4顶点_5边_a自环.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "9d7c1889-48bc-48a0-b5ee-a6713b3ccdae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.size()\n",
    "# 图的大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "f5856b76-ba0e-418f-99c4-afc69c43094b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "EdgeView([('a', 'b'), ('a', 'c'), ('a', 'a'), ('b', 'c'), ('b', 'd'), ('c', 'd')])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.edges\n",
    "# 列出图的边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "aa2cf9ad-f392-40cf-a7a9-1df6d4c3a3c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "undirected_G.degree('a')\n",
    "# 节点a的度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "d9f2b8b7-f272-4e56-ad39-f1922e0536ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['b', 'c', 'a']"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(undirected_G.neighbors('a'))\n",
    "# 邻居"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b1b6c2ca-ad19-42d8-b541-258f65f49a77",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
